The present invention relates generally to the field of electronic devices, and is more specifically directed to a method and circuitry for comparing data.
The manufacture of software to comply to proprietary hardware standards without a license from the owner of the hardware standards, hereinafter unlicensed software, is a significant problem for the owner of the hardware standards and for software producers who have obtained a license, hereinafter licensed software producers. This problem can lead to low quality software because the owner of the proprietary standard is not given a chance to review the unlicensed software before it is released to the market. This is particularly of concern to game console manufacturers, who have proprietary standards for the manufacture of the console and either manufacture or license others to manufacture games, i.e. the software to operate on their hardware.
Many game console manufacturers have installed security devices to prevent unlicensed software from being able to play on their consoles. These security devices try to prevent games which are not manufactured by the console manufacturers or their licensees, but are manufactured by parties who are not licensed to manufacture games for the console, hereinafter unlicensed software producers.
If the security device determines that the game is not manufactured by a licensed software producer the console shuts down. Typically, from a technical viewpoint, most security devices can be designed around by the unlicensed software producers.
To avoid the problem of unlicensed games, some owners of the proprietary hardware standards for game consoles implement a security scheme that involves sending a pattern, hereinafter overlay pattern, to the display device and comparing this pattern with a reference pattern that is legally protected, such as a copyrighted pattern or is a pattern of a trademark. If the overlay pattern is different from the reference pattern the security device shuts down the console. If the overlay pattern corresponds to the reference pattern and the unlicensed software producer displays such a protected pattern he is violating the owner's copyright or trademark and the owner can typically stop the sale of products that violates his copyright or trademark.
FIG. 1 illustrates one such security device 10. The security device 10 is connected to a host interface 12 through a data bus 13 and an address bus 15. The security device 10 contains a pattern storage memory 14 for storing the overlay and reference patterns. When the overlay pattern is written to the pattern storage memory 14, the address of a reference pattern in a pattern reference ROM 16 is passed to the pattern storage memory 14 and the reference pattern is also retrieved by the pattern storage memory 14. The overlay and reference patterns are compared in a comparison circuit 18, typically using a bit by bit comparison. The result is passed to a control circuit 20.
The control circuit 20 is coupled to a digital to analog converter (D/A converter) 26. The D/A converter 26 receives the digital video pixel data 30 from the console's memory and CPU and outputs an analog video output 34 to a display device, hereinafter screen. If there is an exact match between the overlay pattern and the reference pattern the overlay control and color expansion circuit 22 de-references the overlay pattern in a look-up table and determines where on the screen the pattern should be displayed. The overlay pattern is then combined with video pixel data 30 in a pixel multiplexer 24 to make sure that the overlay pattern will be visible on the screen.
The control circuit 20 also receives a digital to analog blanking signal 32 (D/A blanking signal) from a conventional synchronizing ("sync") signal generator (not shown) in the CRT controller. If there is any difference between the overlay pattern and the reference pattern then the control circuit 20 permanently applies the D/A blanking signal 32 to the D/A converter. When the D/A blanking signal 32 is applied to the D/A converter 26, the analog video output 34 is the blanking signal 32 instead of the video pixel data with the overlay pattern.
One problem with such a security device 10 is that it requires a great deal of memory. For a 32.times.16.times.2 overlay pattern the security device 10 requires 1024 bits of RAM for the overlay pattern, in addition to the 1024 bits of ROM needed to store the reference pattern in the pattern reference ROM 16.
Additionally, the security device 10 requires a great deal of logic circuitry. The comparison circuit itself requires a large amount of logic circuitry to perform a bit by bit comparison of the entire overlay and reference patterns. Furthermore, the security device 10 also requires the overlay control and color expansion circuit 22 to de-reference the pattern through a look-up table. The security device 10 also needs the pixel multiplexer 24 to multiplex the pixels in the overlay pattern with the video pixel data 30.
Both the large memory requirement and the large logic requirement increase the complexity and area of the chip, making the chip both larger and more expensive. This goes against the long time goals of the semiconductor industry to reduce the size of an integrated circuit (IC) for a given functionality and to reduce the cost of ICs.
Another problem with the security device 10 is that the location of the read/write memory serving as the pattern storage memory 14 must be disclosed to the software to allow the software to place the overlay pattern into the pattern storage memory 14. This requires future hardware to maintain register compatibility, placing restrains on the future hardware. If register compatibility is not maintained the software will not be transportable between versions of the console. This would require the user to either not upgrade the console or to repurchase all of the games for the upgraded console, both unacceptable alternatives.
A further problem with the security device 10 is that the overlay pattern is checked and then displayed on the screen, leaving open the possibility that the correct overlay pattern may be replaced with another overlay pattern after the overlay pattern is compared to the reference pattern, but before the overlay pattern is displayed. It also allows for the possibility that the overlay control and color expansion circuit 22 and pixel multiplexer 24 will be completely by-passed and the overlay pattern may be simply not displayed at all. Both of these possibilities would make the security device 10 useless in stopping unlicensed games from being played on the console.